import axios from 'axios'
import router from '@/router/router'
import { MyStorage } from '@/utils/utils'
import { TOKEN } from '@/global/globalVariables'

// 但是下面这种方式无法再vite.config.ts文件中使用，因为vite.config.ts中无法识别import.meta，存在先后解析问题
// 如果想在vite.config.ts中使用，需要再.env相关的文件中添加环境变量
// console.log(import.meta.env.MODE) //判断当前环境
// console.log(import.meta.env.DEV) //布尔值，是否是开发环境
// console.log(import.meta.env.PROD) //布尔值，是否是生产环境
// console.log(import.meta.env.SSR) //布尔值，是否是服务端
// 但是当前文件中无法识别import.meta可以创建一个src目录创建文件导入使用
// 根据不同的环境 地址可以进行转换处理
const BASE_URL = '/api'

const http = axios.create({
  timeout: 50000,
  baseURL: BASE_URL
})

http.interceptors.request.use(
  (config) => {
    let token = MyStorage.get(TOKEN)
    // 注意匹配的是服务器的地址非页面的地址
    if (config.url !== '/user/login' && token) {
      config.headers.Authorization = token
    }
    return config
  },
  (err) => {
    return Promise.reject(err)
  }
)

http.interceptors.response.use(
  (res) => {
    return res.data
  },
  (err) => {
    return Promise.reject(err)
  }
)

export default http
